home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / webplus_version.nasl < prev    next >
Text File  |  2005-03-31  |  6KB  |  208 lines

  1. #
  2. # This script was written by Noam Rathaus <noamr@securiteam.com>
  3. #
  4. # Changes by rd :
  5. #  - use of function to simplify code
  6. #
  7. # See the Nessus Scripts License for details
  8. #
  9.  
  10. if(description)
  11. {
  12.  
  13.  script_id(10373);
  14.  script_version ("$Revision: 1.17 $");
  15.  # script_cve_id("CVE-MAP-NOMATCH");
  16.  
  17.  name["english"] = "TalentSoft Web+ version detection";
  18.  script_name(english:name["english"]);
  19.  
  20.  desc["english"] = "
  21. This plug-in detects the version of Web+ CGI. The Web+ CGI has a known 
  22. vulnerability that enables a remote attacker to gain access to local files.
  23.  
  24. This bug is known to exist in Web+ 4.X as of March 1999, and probably exists 
  25. in all previous versions as well.
  26.  
  27. This test in itself does not verify the vulnerability but rather tries to 
  28. discover the version of Web+ which is installed.
  29.  
  30. Risk factor : Low";
  31.  
  32.  script_description(english:desc["english"]);
  33.  
  34.  summary["english"] = "Get the version of Web+ CGI";
  35.  
  36.  script_summary(english:summary["english"]);
  37.  
  38.  script_category(ACT_GATHER_INFO);
  39.  
  40.   script_copyright(english:"This script is Copyright (C) 2000 SecuriTeam");
  41.  family["english"] = "CGI abuses";
  42.  script_family(english:family["english"]);
  43.  script_dependencie("find_service.nes", "http_version.nasl");
  44.   script_require_ports("Services/www", 80);
  45.  exit(0);
  46. }
  47.  
  48. #
  49. # The script code starts here
  50. #
  51.  
  52. include("http_func.inc");
  53. include("http_keepalive.inc");
  54.  
  55. function extract_version(result, port)
  56. {
  57.  
  58.     resultrecv = strstr(result, "Version: </b>: ");
  59.     resultsub = strstr(resultrecv, string("\n"));
  60.     resultrecv = resultrecv - resultsub;
  61.     resultrecv = resultrecv - "</b>";
  62.  
  63.     banner = banner + resultrecv;
  64.     banner = banner + string("\n");
  65.  
  66.     resultrecv = strstr(result, "<br><b>Web+ Server Compile Number</b>: ");
  67.     resultsub = strstr(resultrecv, string("\n"));
  68.     resultrecv = resultrecv - resultsub;
  69.     resultrecv = resultrecv - "<br>";
  70.     resultrecv = resultrecv - "<b>";
  71.     resultrecv = resultrecv - "</b>";
  72.  
  73.     banner = banner + resultrecv;
  74.     banner = banner + string("\n");
  75.  
  76.     resultrecv = strstr(result, "<br><b>Web+ Client Compile Number</b>: ");
  77.     resultsub = strstr(resultrecv, string("\n"));
  78.     resultrecv = resultrecv - resultsub;
  79.     resultrecv = resultrecv - "<br>";
  80.     resultrecv = resultrecv - "<b>";
  81.     resultrecv = resultrecv - "</b>";
  82.  
  83.     banner = banner + resultrecv;
  84.     banner = banner + string("\n");
  85.  
  86.     resultrecv = strstr(result, "<br><b>Operating System</b>: ");
  87.     resultsub = strstr(resultrecv, string("\n"));
  88.     resultrecv = resultrecv - resultsub;
  89.     resultrecv = resultrecv - "<br>";
  90.     resultrecv = resultrecv - "<b>";
  91.     resultrecv = resultrecv - "</b>";
  92.  
  93.     banner = banner + resultrecv;
  94.     banner = banner + string("\n");
  95.  
  96.     resultrecv = strstr(result, "Web+ Server Version");
  97.     resultsub = strstr(resultrecv, string("\n"));
  98.     resultrecv = resultrecv - resultsub;
  99.     resultrecv = resultrecv - "<B>";
  100.     resultrecv = resultrecv - "</B>";
  101.     
  102.     banner = banner + resultrecv;
  103.     banner = banner + string("\n");
  104.  
  105.     resultrecv = strstr(result, "Web+ Monitor Server Version");
  106.     resultsub = strstr(resultrecv, string("\n"));
  107.     resultrecv = resultrecv - resultsub;
  108.     resultrecv = resultrecv - "<B>";
  109.     resultrecv = resultrecv - "</B>";
  110.     
  111.     banner = banner + resultrecv;
  112.     banner = banner + string("\n");
  113.  
  114.     resultrecv = strstr(result, "Web+ Client Version");
  115.     resultsub = strstr(resultrecv, string("\n"));
  116.     resultrecv = resultrecv - resultsub;
  117.     resultrecv = resultrecv - "<B>";
  118.     resultrecv = resultrecv - "</B>";
  119.     
  120.     banner = banner + resultrecv;
  121.     banner = banner + string("\n");
  122.  
  123.     resultrecv = strstr(result, "Release Date");
  124.     resultsub = strstr(resultrecv, string("\n"));
  125.     resultrecv = resultrecv - resultsub;
  126.     resultrecv = resultrecv - "<B>";
  127.     resultrecv = resultrecv - "</B>";
  128.     
  129.     banner = banner + resultrecv;
  130.     banner = banner + string("\n");
  131.  
  132.     resultrecv = strstr(result, "User Name");
  133.     resultsub = strstr(resultrecv, string("\n"));
  134.     resultrecv = resultrecv - resultsub;
  135.     resultrecv = resultrecv - "<B>";
  136.     resultrecv = resultrecv - "</B>";
  137.     resultrecv = resultrecv - "<i>";
  138.     resultrecv = resultrecv - "</i>";
  139.     resultrecv = resultrecv - "<BR>";
  140.     
  141.     banner = banner + resultrecv;
  142.     banner = banner + string("\n");
  143.  
  144.     resultrecv = strstr(result, "Company Name");
  145.     resultsub = strstr(resultrecv, string("\n"));
  146.     resultrecv = resultrecv - resultsub;
  147.     resultrecv = resultrecv - "<B>";
  148.     resultrecv = resultrecv - "</B>";
  149.     resultrecv = resultrecv - "<i>";
  150.     resultrecv = resultrecv - "</i>";
  151.     resultrecv = resultrecv - "<BR>";
  152.     
  153.     banner = banner + resultrecv;
  154.     banner = banner + string("\n");
  155.  
  156.     resultrecv = strstr(result, "Web Server IP Address");
  157.     resultsub = strstr(resultrecv, string("\n"));
  158.     resultrecv = resultrecv - resultsub;
  159.     resultrecv = resultrecv - "<B>";
  160.     resultrecv = resultrecv - "</B>";
  161.     resultrecv = resultrecv - " </CENTER>";
  162.     
  163.     banner = banner + resultrecv;
  164.     banner = banner + string("\n");
  165.  
  166.     resultrecv = strstr(result, "Web Server Domain Name");
  167.     resultsub = strstr(resultrecv, string("\n"));
  168.     resultrecv = resultrecv - resultsub;
  169.     resultrecv = resultrecv - "</B>";
  170.     resultrecv = resultrecv - " </CENTER>";
  171.     
  172.     banner = banner + resultrecv;
  173.     banner = banner + string("\n");
  174.     
  175.     security_warning(port:port, data:banner);
  176.     return(0);
  177. }
  178.  
  179. port = get_http_port(default:80);
  180.  
  181. if(!get_port_state(port))exit(0);
  182.  
  183.  
  184. foreach dir (cgi_dirs())
  185. {
  186. req1 = string(dir, "/webplus?about");
  187. req1 = http_get(item:req1, port:port);
  188. req2 = string(dir, "/webplus.exe?about");
  189. req2 = http_get(item:req2, port:port);
  190.  
  191. result = http_keepalive_send_recv(port:port, data:req1);
  192. if(result == NULL)exit(0);
  193.  
  194. if("TalentSoft Web+" >< result)
  195.  {
  196.   extract_version(result:result, port:port);
  197.   exit(0);
  198.  }
  199.  
  200. result = http_keepalive_send_recv(port:port, data:req2);
  201. if("TalentSoft Web" >< result)
  202.  {
  203.   extract_version(result:result, port:port);
  204.   exit(0);
  205.  }
  206. }
  207.  
  208.